package abg.core.common.util.valid.handler;


import abg.core.common.util.StringKit;
import abg.core.common.util.valid.Max;
import abg.core.common.util.valid.base.ValidBaseHandler;
import abg.core.domain.sys.ServiceException;
import org.springframework.stereotype.Component;

/**
 * 枚举校验规则实现
 */
@Component
public class MaxHandler implements ValidBaseHandler<Max, String> {

    // 第一个参数应该是注解
    @Override
    public void valid(Max annotation, String paramName, String paramValue) {
        if (StringKit.isBlank(paramValue))
            throw new ServiceException(StringKit.blankDefStr(annotation.msg(), "参数：" + paramName + "，不能为空"));

        long maxValue = annotation.value();
        if (Integer.parseInt(paramValue) > maxValue) {
            throw new ServiceException(StringKit.blankDefStr(annotation.msg(), "参数：" + paramName + "，最大值为" + maxValue));
        }
    }

}
